This invention relates to the handling of electronic mail ("e-mail") messages within an e-mail messaging system.
An e-mail messaging system generally is composed of one or more sites interconnected through a local area network ("LAN"). A typical e-mail site 10 as shown in FIG. 1 includes one or more servers 12 and 14 interconnected by a communications path 28. Each server 12 and 14 respectively serves one or more clients 16, 18, 20 and 22, 24, 26 (e.g., individual workstations). A client in turn interacts through a user interface application with an end-user--for example, a human operator who seeks to use the e-mail system to communicate with other end-users.
Each end-user of the e-mail system has a unique "mailbox" 30-35 located on one of the servers in the e-mail system through which the end-user sends, receives, stores or otherwise processes messages. A mailbox is an abstraction for an electronic workspace associated with a single, specific end-user. As shown in FIG. 2, a mailbox 50 may be subdivided logically into a number of constituent workspaces, for example, an in-box 52 in which some of newly received messages are placed; one or more user-specified folders 54, 56, 58 for organizing and storing e-mail messages by subject matter; a "trash" folder 60 in which unwanted messages are placed; and so on. Ordinarily, the various elements of an end-user's mailbox are graphically represented as various abstractions on the screen display of the client (e.g., icons of file folders, a trash bin).
An end-user may access his or her mailbox by logging on to the appropriate server through a client connected to that server. For example, the end-user who owns mailbox 31 in FIG. 1 may log on to server 14 through any one of clients 22, 24 or 26 to access his or her mailbox. Client 22 might be a desktop PC at the office while client 24 might be the same user's laptop computer. Once an end-user has gained access to his or her mailbox, he has a number of operations available including preparing and sending new messages; reading and replying to messages received from other end-users of the e-mail system; forwarding messages on to other end-users; deleting unwanted messages; organizing saved messages by moving or copying them into new or existing folders; and so on. In the simplest case, these operations are performed interactively (e.g., manually by the user); each operation requiring input from and/or acknowledgement by the end-user before its execution may be completed.
Often an end-user will want to perform the same operations on messages having the same characteristics (e.g., identity of the end-user who sent the message, subject matter of message, priority assigned to message, etc.). An agent known as a "rule" allows the end-user to specify one or more "actions" that will be performed by the e-mail system automatically during message delivery phase, based upon one or more triggering conditions being satisfied. For example, an end-user may create a rule that all incoming messages on a specified topic (the condition) are to be forwarded (the action) to another end-user. In another example, the end-user may want to be notified whenever a new "urgent priority" message (first condition) is received from his or her boss (second condition) by having a pop-up alert window displayed (first action) and a tone generated (second action) at the client through which the end-user is logged on to the server.
Rules are created by the client on a client by an end-user using an appropriate rule building tool (e.g., dialogue boxes with menus of conditions and actions built into the e-mail messaging system). An end-user may create new rules, edit existing rules, change the order in which rules are to be evaluated or delete unwanted rules according to personal requirements and preferences. Once a rule has been created by the client it is communicated to and stored on the server in association with the end-user's mailbox.
Whenever a messaging "event" occurs for a particular end-user, the server associated with that end-user evaluates the end-user's present collection of rules to determine if the conditions of one or more of the rules have been met. Ordinarily, an event is the receipt of a new message but it also could be the sending of a message. If the event satisfies the conditions of a rule, the server performs the actions associated with that rule. Rule based messaging systems are described in more detail in U.S. Pat. No. 5,238,856 (Gross et al.), issued Feb. 1, 1994, which is incorporated by reference.
What is needed are tools and techniques that allow automated rules for handling e-mail messages in a server-based system to be processed in a seamless and efficient manner over multiple client types for a given user.